package etc

import (
	"crypto/md5"
	"fmt"
	"io/ioutil"
	"os"
	"runtime"
)

var ot = runtime.GOOS

// 获取系统
func OS() string {
	return ot
}

// 文件或目录是否存在
func IS(fileName string) bool {
	_, err := os.Stat(fileName)
	if err == nil {
		return true
	}

	if os.IsNotExist(err) {
		return false
	}

	return false
}

// 获取程序运行路径
func ROOT() string {
	var rootPath string

	rootPath, _ = os.Getwd()

	return rootPath
}

// 获取系统路径
func PATH() string {
	if ot == "windows" {
		return "\\"
	} else if ot == "linux" {
		return "/"
	}
	return "/"
}

// 文件md5计算
func MD5(path string) (string, error) {
	f, err := os.Open(path)
	if err != nil {
		return "", err
	}

	defer f.Close()

	body, err := ioutil.ReadAll(f)
	if err != nil {
		return "", err
	}

	return fmt.Sprintf("%x", md5.Sum(body)), nil
}

// 文件后缀名是否存在
func EXT(ext string) bool {
	for _, fe := range FileExt {
		if fe == ext {
			return true
		}
	}
	return false
}
